package org.e_gold.dao;

import java.util.List;

import org.e_gold.model.ValueObject;
import org.e_gold.util.SQL;

public interface GenericDAO<T extends ValueObject> extends SQL{

	T insert(T t);

	void delete(T t);

	T update(T t);

	T findOne(Long id);

	List<T> findAll();

	List<T> findByPropertyName(String propName, Object value);

	T getUniqueByPropertyName(String propName, Object value);

	List<T> findByExample(T exampleInstance, String...excludeProperty);

	List<T> update(List<T> lst);
}
